Location-based operating modes

ABSTRACT

A location-aware device detects if a personal or point of interest region has been entered or exited and a current context of the device. In response, an operating mode is selected based on the region and a current context of the device. The operating mode is configurable by a user, including setting geofence parameters, context parameters and operating mode parameters.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Provisional Patent ApplicationNo. 61/919,686, entitled “Location Based Operating Modes,” filed on Dec.20, 2013, the entire contents of which are incorporated herein byreference.

TECHNICAL FIELD

This disclosure relates generally to location-based services for mobiledevices.

BACKGROUND

Location-based services (LBS) provide location-aware devices access toinformation and services through a wireless network based on thegeographical position of the mobile device. LBS include services toidentify a location of a person or object, such as discovering thenearest museum or the whereabouts of a friend. LBS may include mobilecommerce in the form of coupons or advertising targeted to customersbased on their current locations.

A geofence is a virtual perimeter for real-world geographic area. Ageofence may be dynamically generated by specifying a radius around astore or point location. When a location-aware device enters or exits ageofence, the device may receive a notification from LBS through a textmessage, e-mail or telephone call.

SUMMARY

A location-aware device detects if a personal or point of interest (POI)region has been entered or exited and a current context of the device.In response, an operating mode is selected based on the region and acurrent context of the device. The operating mode is configurable by auser, including setting geofence parameters, context parameters andoperating mode parameters (e.g., device settings and notifications).

In some implementations, the location of the device need not bedetermined for detecting if the device has entered or exited a region.In such cases, a scan list of wireless transmitters is processed todetect the occurrence of a geofence crossing. If the crossing of ageofence is detected by the device, geographic coordinates may beprovided by a positioning system and geocoded to identify the POI. Thirdparty LBS associated with the POI region may be notified that the devicedesires to receive notifications based on the operating mode of thedevice.

Particular implementations disclosed herein provide one or more of thefollowing advantages. Users may configure operating modes on theirlocation-aware devices for personal regions and POI regions, so thatdevice settings and notifications may be automatically adjusted to theuser's interests and lifestyle if the user enters or exits a personal orPOI region.

The details of the disclosed implementations are set forth in theaccompanying drawings and the description below. Other features,objects, and advantages will be apparent from the description anddrawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of an example system implementinglocation-based operating modes.

FIG. 2A illustrates an example user interface for selecting between apersonal region and a POI region.

FIG. 2B illustrates an example user interface for selecting a POIregion.

FIG. 2C illustrates an example user interface for setting geofence,context and operating mode parameters.

FIG. 3 is a flow diagram of an example process for settinglocation-based operating modes.

FIG. 4 is a flow diagram of an example process for activating alocation-based operating mode.

FIG. 5 is a block diagram of an exemplary architecture of alocation-aware device capable of implementing the features and processesdescribed in reference to FIGS. 1-4.

The same reference symbol used in various drawings indicates likeelements.

DETAILED DESCRIPTION Example System

FIG. 1 is a block diagram of an example system 100 implementinglocation-based operating modes. In some implementations, system 100 mayinclude LBS 102, location-aware device 104, network 106, personal region108 and POI regions 110 a, 110 b. LBS 102 and device 104 communicateusing network 106. Personal region 108 is defined by a geofencesurrounding personal location 112. POI regions 110 a, 110 b are definedby geofences surrounding POI locations 114 a, 114 b.

LBS 102 may include one or more server computers and other equipment andsoftware for communicating with device 104. LBS data may be stored indatabase 116, which is accessible to LBS 102 and may be made accessibleto device 104 through LBS 102.

Devices 104 may be any device capable of processing data. Device 104 maycommunicate with LBS 102 through various wireless connections (e.g.,WiFi, cellular) to network 106. Device 104 may include a variety ofsensors that provide data that may be used to determine the context ofdevice 104. The context of device 104 includes internal (internal todevice 104) or external events that form an environment within whichdevice 104 operates. Some examples of device 104 include, but are notlimited to personal computers, smart phones and electronic tablets.

Network 106 may be a collection of one or more networks that includehardware (e.g., router, hubs) and software configured for transportinginformation from one device to another device. Some examples of network106 are Local Area Networks (LAN), Wide Area Networks (WAN), WirelessLAN (WLAN), Internet, intranets, cellular networks and the PublicSwitched Telephone Network (PSTN).

In the example shown, a user has set up three operating modes for device104. A first operating mode is configured for personal region 108.Personal region 108 is a geographic region that is personal to the user,including but not limited to Home Region and Work Region. Personalregion 108 may be defined by a geofence using a radial distanceparameter (e.g., a distance in miles or meters) from personal location112. An example of personal location 112 is the user's home or workaddress, which may be discovered from, for example, the user's contactsor address book stored on device 104 or stored by LBS 102 in database116.

POI regions 110 a, 110 b are regions that include the address of POIlocations 114 a, 114 b. POI regions 110 a, 110 b may be defined bygeofences using a radial distance parameter (e.g., a distance in milesor meters) from POI locations 114 a, 114 b. Some examples of POIlocations 114 a, 114 b include but are not limited to retail stores,shopping malls, movie theatres, restaurants, amusement parks, nationalparks, landmarks, museums and any other public or private institutionsor landmarks or any other specific point location that someone may finduseful or interesting. Addresses of POI locations 114 a, 114 b can bediscovered from map databases, such as the U.S. Geological Survey (USGS)National Geologic Map Database.

System 100 is one example of a system for implementing location-basedoperating modes. Other implementations are possible, including systemsthat include more than one LBS 102, device 104, network 106, database116, regions 108, 110 and point locations 112, 114.

If user enters or exits personal region 108 or POI regions 110 a, 110 band a certain current context for device 104 exists, an operating modefor region 108 is automatically initiated on device 104. The operatingmode may be configured using the user interfaces described in referenceto FIGS. 2A-2C. An operating mode may cause changes to settings ofdevice 104 and define how notifications will be managed by device 104.Some examples of device settings may include but are not limited toactivating or deactivating “do not disturb” modes, sound volumesilencing (e.g., telephone ringer volume, keyboard clicks, text message(e.g., SMS) tones, notification management, mail and text message lockscreen previews, automatic lock display timeout, passcode requirementsto access device, etc.

For one example, a user can configure an operating mode on a smart phonefor personal region 108 that includes deactivating Do Not Disturb modewhen the user enters Home Region. In Do Not Disturb mode, the user'sphone can still receive incoming calls, messages and othernotifications, but will not alert the user until later, keeping thesmart phone's screen dark, its vibrations still and its tones silent.

For another example, a user can configure a first operating mode ontheir electronic tablet for Home Region and second operating mode ontheir electronic tablet for Work Region. The first and second operatingmodes can have different device settings and notification management.For example, certain applications or websites can be restricted when inthe first (Home Region) operating mode to prevent other users (e.g.,children) from accessing those applications or websites.

For another example, a user can configure an operating mode on theirsmart phone for POI region 110 a (e.g., a library, museum or movietheatre) that includes silencing ringer volume, keyboard clicks, SMStones and any other audio generated by device 104.

Example User Interfaces

FIG. 2A illustrates an example user interface for allowing a user toselect between a personal region option and a POI region option. In someimplementations, device 104 may include a touch sensitive surface 200that presents user interface 202 a including user interface elements204, 206 for accessing personal regions and POI region settings,respectively.

FIG. 2B illustrates an example user interface 202 b that is presentedwhen the user selects element 206 (points of interest option) forexposing settings for a POI region. In this example, user interface 202b may include user interface elements 208 a-208 d for selecting POIcategories of Movies, Shopping Malls, Museums and National Parks. Othercategories are possible. In the example shown, the user selectedShopping Malls element 208 b to configure an operating mode for ShoppingMalls.

FIG. 2C illustrates an example user interface 202 c that is presentedwhen the user selects element 208 b (Shopping Mall option) for exposingsettings for a Shopping Mall category. In this example, user interface202 c may include geofence settings 210, context settings 212 andoperating mode settings 214.

Geofence settings 210 allow a user to set a radius parameter and dwelltime parameter. The radius parameter defines the size of the geofencearound the shopping mall address and the dwell time determines theamount of time device 104 can remain within the geofence before theshopping mall operating mode is activated. The radius value should belarge enough to cover the entire shopping mall complex, which may spanseveral square miles. If the user enters the geofence but only stayswithin the geofence for less than the specified dwell time there is anassumption that the user was only passing by the shopping mall and didnot intend to stop and shop. Thus, the dwell time parameter is aconfidence check that prevents device 104 from activating the shoppingmall operating mode inadvertently.

Context settings 212 allow a user to set various context parameters. Forthe example shown, the user set Friday, Saturday and Sunday as the daysof the week and a time range of 10:00 AM to 8:00 PM. Context settings212 also allow the user to specify a travel mode. The travel modeindicates how the user must be traveling for the shopping mall operatingmode to be activated. Travel mode may include but not be limited todriving, public transportation or walking In the example shown the userhas selected the travel mode: Walking

Operating mode settings 214 allow a user to set various device and/ornotification management settings that will become active when theShopping Mall operating mode is activated. In the example shown, theuser has checked a check box corresponding to notifications related to aFood category. Other categories include Women's clothes, Men's clothes,Shoes, Jewelry and Sporting goods and any other desired categories. Thenotifications can include advertisements, coupons and any otherinformation related to the category. Notifications can include embeddedor attached content including text, photos, video and audio.Notifications can include phone numbers and links to websites, socialnetworks or other network resources. Notifications can be delivered asWeb pages, text messages, multimedia messages, telephone calls andstreaming audio or video. In some implementations, device 104 vibratesto indicate a notification.

Based on the example settings shown in FIG. 2C, the user desires toreceive notification related to food each time the user is walkingwithin 1 mile of a shopping mall for at least 10 minutes on Friday,Saturday or Sunday between the hours of 10:00 AM to 8:00 PM. Bycombining geofence settings, context settings and operating modesettings, the user can more precisely manage their device and the kindsand amount of information that is displayed to the user by device 104.

Example Settings Process

FIG. 3 is a flow diagram of an example process 300 for settinglocation-based operating modes. Process 300 can be implemented usingdevice architecture 500 described in reference to FIG. 5.

In some implementations, process 300 may begin by receiving a firstinput selecting a POI option (302). The POI option may be included on auser interface presented on a touch sensitive surface of alocation-aware device. The POI option may be a user interface element,such as a virtual button, check box, radial button and the like.

Process 300 may continue by receiving a second input setting geofenceparameters (304). Geofence parameters may include a radius parameter anda dwell time parameter, as described in reference to FIG. 2C.

Process 300 may continue by receiving a third input setting contextparameters (306). Context parameters may include date and timeparameters and travel mode, such as driving, public transportation andwalking, as described in reference to FIG. 2C.

Process 300 may continue by receiving a fourth input setting operatingmode parameters (308). Operating mode parameters can include devicesettings and notification settings, a described in reference to FIG. 2C.

In some implementations, a user may use voice commands and anintelligent virtual assistant (e.g., a speech recognition engine) tospecify the settings in reference to FIGS. 2A-2C.

Example Operating Mode Activation Process

FIG. 4 is a flow diagram of an example process 400 for activating alocation-based operating mode. Process 400 can be implemented usingdevice architecture 500 described in reference to FIG. 5.

Process 400 may begin by detecting the presence of a device in a region(402). In some implementations, the device receives data defining ageofence from LBS 102. The device may select from multiple wirelessaccess points, one or more wireless access points for monitoring thegeofence. The selected wireless access points may be monitored by awireless processor of the device. The wireless processor can detect apotential entry of the geofence when at least one of the selected one ormore wireless access points is detected. Upon a detection of thepotential entry of the geofence by the wireless processor, the devicecan use an application processor of the device to determine whether thedevice entered the geofence. The foregoing process is described infurther detail in co-pending U.S. patent application Ser. No.13/153,377, for “Monitoring A Geofence Using Wireless Access Points,”filed Jun. 3, 2011, which patent application is incorporated byreference herein in its entirety.

Process 400 may continue by determining a current context of the device(404). The current context of the device may be determined by sensors,clock or timer of the device. For example, a system clock can be used todetermine when a particular date and time has occurred. Accelerometers,gyro sensors and a magnetometer can be used determine whether the deviceis moving and its orientation with respect to a reference coordinateframe. Thus, these onboard motion sensors can be used to determine thetraveling status of the user, as described in reference to FIG. 2C. Forexample, accelerometer data can be analyzed (e.g., integrated to obtainvelocity) to determine if the user is driving in a car or walking, andthe user's direction of travel.

Process 400 may continue by selecting an operating mode based on thedetected region and the current context of the device (406). If thecurrent context parameters are satisfied while the device is within thedetected region, the operating mode for the region will be activated.

Example Device Architecture

FIG. 5 is a block diagram of an exemplary architecture of alocation-aware device capable of implementing the features and processesdescribed in reference to FIGS. 1-4.

Architecture 500 may be implemented in any device for generating thefeatures described in reference to FIGS. 1-4, including but not limitedto portable or desktop computers, smart phones and electronic tablets,television systems, game consoles, kiosks and the like. Architecture 500may include memory interface 502, data processor(s), image processor(s)or central processing unit(s) 504, and peripherals interface 506. Memoryinterface 502, processor(s) 504 or peripherals interface 506 may beseparate components or may be integrated in one or more integratedcircuits. The various components may be coupled by one or morecommunication buses or signal lines.

Sensors, devices, and subsystems may be coupled to peripherals interface506 to facilitate multiple functionalities. For example, motion sensor510, light sensor 512, and proximity sensor 514 may be coupled toperipherals interface 506 to facilitate orientation, lighting, andproximity functions of the device. For example, in some implementations,light sensor 512 may be utilized to facilitate adjusting the brightnessof touch surface 546. In some implementations, motion sensor 510 (e.g.,an accelerometer, gyros) may be utilized to detect movement andorientation of the device. Accordingly, display objects or media may bepresented according to a detected orientation (e.g., portrait orlandscape).

Other sensors may also be connected to peripherals interface 506, suchas a temperature sensor, a biometric sensor, or other sensing device, tofacilitate related functionalities.

Location processor 515 (e.g., GPS receiver) may be connected toperipherals interface 506 to provide geo-positioning. Electronicmagnetometer 516 (e.g., an integrated circuit chip) may also beconnected to peripherals interface 506 to provide data that may be usedto determine the direction of magnetic North. Thus, electronicmagnetometer 516 may be used as an electronic compass.

Camera subsystem 520 and an optical sensor 522, e.g., a charged coupleddevice (CCD) or a complementary metal-oxide semiconductor (CMOS) opticalsensor, may be utilized to facilitate camera functions, such asrecording photographs and video clips.

Communication functions may be facilitated through one or morecommunication subsystems 524. Communication subsystem(s) 524 may includeone or more wireless communication subsystems. Wireless communicationsubsystems 524 may include radio frequency receivers and transmittersand/or optical (e g , infrared) receivers and transmitters. Wiredcommunication system may include a port device, e.g., a Universal SerialBus (USB) port or some other wired port connection that may be used toestablish a wired connection to other computing devices, such as othercommunication devices, network access devices, a personal computer, aprinter, a display screen, or other processing devices capable ofreceiving or transmitting data. The specific design and implementationof the communication subsystem 524 may depend on the communicationnetwork(s) or medium(s) over which the device is intended to operate.For example, a device may include wireless communication subsystemsdesigned to operate over a global system for mobile communications (GSM)network, a GPRS network, an enhanced data GSM environment (EDGE)network, 802.x communication networks (e.g., Wi-Fi, Wi-Max), codedivision multiple access (CDMA) networks, and a Bluetooth™ network.Communication subsystems 524 may include hosting protocols such that thedevice may be configured as a base station for other wireless devices.As another example, the communication subsystems may allow the device tosynchronize with a host device using one or more protocols, such as, forexample, the TCP/IP protocol, HTTP protocol, UDP protocol, and any otherknown protocol.

Audio subsystem 526 may be coupled to a speaker 528 and one or moremicrophones 530 to facilitate voice-enabled functions, such as voicerecognition, voice replication, digital recording, and telephonyfunctions.

I/O subsystem 540 may include touch controller 542 and/or other inputcontroller(s) 544. Touch controller 542 may be coupled to a touchsurface 546. Touch surface 546 and touch controller 542 may, forexample, detect contact and movement or break thereof using any of anumber of touch sensitivity technologies, including but not limited tocapacitive, resistive, infrared, and surface acoustic wave technologies,as well as other proximity sensor arrays or other elements fordetermining one or more points of contact with touch surface 546. In oneimplementation, touch surface 546 may display virtual or soft buttonsand a virtual keyboard, which may be used as an input/output device bythe user.

Other input controller(s) 544 may be coupled to other input/controldevices 548, such as one or more buttons, rocker switches, thumb-wheel,infrared port, USB port, and/or a pointer device such as a stylus. Theone or more buttons (not shown) may include an up/down button for volumecontrol of speaker 528 and/or microphone 530.

In some implementations, device 500 may present recorded audio and/orvideo files, such as MP3, AAC, and MPEG files. In some implementations,device 500 may include the functionality of an MP3player and may includea pin connector for tethering to other devices. Other input/output andcontrol devices may be used.

Memory interface 502 may be coupled to memory 550. Memory 550 mayinclude high-speed random access memory or non-volatile memory, such asone or more magnetic disk storage devices, one or more optical storagedevices, or flash memory (e.g., NAND, NOR). Memory 550 may storeoperating system 552, such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS,or an embedded operating system such as VxWorks. Operating system 552may include instructions for handling basic system services and forperforming hardware dependent tasks. In some implementations, operatingsystem 552 may include a kernel (e.g., UNIX kernel).

Memory 550 may also store communication instructions 554 to facilitatecommunicating with one or more additional devices, one or more computersor servers. Communication instructions 554 may also be used to select anoperational mode or communication medium for use by the device, based ona geographic location (obtained by the GPS/Navigation instructions 568)of the device. Memory 550 may include graphical user interfaceinstructions 556 to facilitate graphic user interface processing; sensorprocessing instructions 558 to facilitate sensor-related processing andfunctions; phone instructions 560 to facilitate phone-related processesand functions; electronic messaging instructions 562 to facilitateelectronic-messaging related processes and functions; web browsinginstructions 564 to facilitate web browsing-related processes andfunctions; media processing instructions 566 to facilitate mediaprocessing-related processes and functions; GPS/Navigation instructions568 to facilitate GPS and navigation-related processes; camerainstructions 570 to facilitate camera-related processes and functions;and other instructions 572 for facilitating other processes, featuresand applications, such as the features and processes described inreference to FIGS. 1-4.

Each of the above identified instructions and applications maycorrespond to a set of instructions for performing one or more functionsdescribed above. These instructions need not be implemented as separatesoftware programs, procedures, or modules. Memory 550 may includeadditional instructions or fewer instructions. Furthermore, variousfunctions of the device may be implemented in hardware and/or insoftware, including in one or more signal processing and/or applicationspecific integrated circuits.

The features described may be implemented in digital electroniccircuitry or in computer hardware, firmware, software, or incombinations of them. The features may be implemented in a computerprogram product tangibly embodied in an information carrier, e.g., in amachine-readable storage device, for execution by a programmableprocessor; and method steps may be performed by a programmable processorexecuting a program of instructions to perform functions of thedescribed implementations by operating on input data and generatingoutput.

The described features may be implemented advantageously in one or morecomputer programs that are executable on a programmable system includingat least one programmable processor coupled to receive data andinstructions from, and to transmit data and instructions to, a datastorage system, at least one input device, and at least one outputdevice. A computer program is a set of instructions that may be used,directly or indirectly, in a computer to perform a certain activity orbring about a certain result. A computer program may be written in anyform of programming language (e.g., Objective-C, Java), includingcompiled or interpreted languages, and it may be deployed in any form,including as a stand-alone program or as a module, component,subroutine, or other unit suitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors orcores, of any kind of computer. Generally, a processor will receiveinstructions and data from a read-only memory or a random access memoryor both. The essential elements of a computer are a processor forexecuting instructions and one or more memories for storing instructionsand data. Generally, a computer may communicate with mass storagedevices for storing data files. These mass storage devices may includemagnetic disks, such as internal hard disks and removable disks;magneto-optical disks; and optical disks. Storage devices suitable fortangibly embodying computer program instructions and data include allforms of non-volatile memory, including by way of example semiconductormemory devices, such as EPROM, EEPROM, and flash memory devices;magnetic disks such as internal hard disks and removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor andthe memory may be supplemented by, or incorporated in, ASICs(application-specific integrated circuits).

To provide for interaction with an author, the features may beimplemented on a computer having a display device such as a CRT (cathoderay tube) or LCD (liquid crystal display) monitor for displayinginformation to the author and a keyboard and a pointing device such as amouse or a trackball by which the author may provide input to thecomputer.

The features may be implemented in a computer system that includes aback-end component, such as a data server or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system may be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include a LAN, a WAN and thecomputers and networks forming the Internet.

The computer system may include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork. The relationship of client and server arises by virtue ofcomputer programs running on the respective computers and having aclient-server relationship to each other.

One or more features or steps of the disclosed embodiments may beimplemented using an Application Programming Interface (API). An API maydefine on or more parameters that are passed between a callingapplication and other software code (e.g., an operating system, libraryroutine, function) that provides a service, that provides data, or thatperforms an operation or a computation.

The API may be implemented as one or more calls in program code thatsend or receive one or more parameters through a parameter list or otherstructure based on a call convention defined in an API specificationdocument. A parameter may be a constant, a key, a data structure, anobject, an object class, a variable, a data type, a pointer, an array, alist, or another call. API calls and parameters may be implemented inany programming language. The programming language may define thevocabulary and calling convention that a programmer will employ toaccess functions supporting the API.

In some implementations, an API call may report to an application thecapabilities of a device running the application, such as inputcapability, output capability, processing capability, power capability,communications capability, etc.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. The systems andtechniques presented herein are also applicable to other electronic textsuch as electronic newspaper, electronic magazine, electronic documentsetc. Elements of one or more implementations may be combined, deleted,modified, or supplemented to form further implementations. As yetanother example, the logic flows depicted in the figures do not requirethe particular order shown, or sequential order, to achieve desirableresults. In addition, other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A method comprising: receiving, by a mobiledevice, a first input selecting a category from a plurality of categoryoptions, the category options defining different types of points ofinterest; receiving, by the mobile device, a second input selecting oneor more subcategories from a plurality of subcategory options, thesubcategory options being different types of products or servicesassociated with the category selected by the first input; discovering,by the mobile device, a particular point of interest from a map databasethat falls within the category selected by the first input; detecting,by the mobile device, that the mobile device has entered or exited ageofence surrounding a geographic region including the particular pointof interest; determining, by one or more motion sensors of the mobiledevice, a current context of the mobile device, the current contextbeing that a user of the mobile device is walking or driving with themobile device and a direction of travel of the user; determining, by themobile device, whether or not to present a notification on the mobiledevice based on the current context; responsive to determining topresent the notification on the mobile device, determining, by themobile device, a user-selected notification type based on thesubcategory selected by the second input; and presenting, on the mobiledevice, the notification of the user-selected notification type on themobile device.
 2. The method of claim 1, wherein the detecting furthercomprises: monitoring wireless access points to determine that thegeofence has been entered or exited by the mobile device.
 3. The methodof claim 1, wherein the geofence size is determined by a user-selectedradius parameter.
 4. The method of claim 1, wherein the detectingincludes determining that a dwell time within the geofence has beenexceeded.
 5. The method of claim 1, where determining not to present thenotification on the mobile device comprises: determining that anoperating mode is enabled on the mobile device that delays presentationof notifications of incoming telephone calls and messages to the mobiledevice.
 6. The method of claim 1, wherein determining the currentcontext further includes determining at least one of a day of the weekor current time.
 7. The method of claim 1, wherein determining thecurrent context further includes determining that a user-selectedcontext parameter indicates travel status.
 8. The method of claim 1,wherein the notification type is associated with a user-selectedcategory of products or services.
 9. The method of claim 1, wherein thegeographic region is associated with a home or work address of the userthat is stored in contacts or an address book on the mobile device. 10.A mobile device comprising: one or more motion sensors; one or moreprocessors; memory coupled to the one or more processors and configuredto store instructions, which, when executed by the one or moreprocessors, causes the one or more processors to perform operationscomprising: receiving a first input selecting a category from aplurality of category options, the category options defining differenttypes of points of interest; receiving a second input selecting one ormore subcategories from a plurality of subcategory options, thesubcategory options being different types of products or servicesassociated with the category selected by the first input; discovering aparticular point of interest from a map database that falls within thecategory selected by the first input; detecting that the mobile devicehas entered or exited a geofence surrounding a geographic regionincluding the particular point of interest; determining, by the one ormore sensors, a current context of the mobile device, the currentcontext being that a user of the mobile device is walking or drivingwith the mobile device and a direction of travel of the user;determining whether or not to present a notification on the mobiledevice based on the current context; responsive to determining topresent the notification on the mobile device, determining auser-selected notification type based on the subcategory selected by thesecond input; and presenting the notification of the user-selectednotification type on the mobile device.
 11. The mobile device of claim10, wherein the detecting further comprises: monitoring wireless accesspoints to determine that the geofence has been entered or exited by themobile device.
 12. The mobile device of claim 10, wherein the geofencesize is determined by a user-selected radius parameter.
 13. The mobiledevice of claim 10, wherein the detecting includes determining that adwell time within the geofence has been exceeded.
 14. The mobile deviceof claim 10, where determining not to present the notification on themobile device comprises: determining that an operating mode is enabledon the mobile device that delays presentation of notifications ofincoming telephone calls and messages to the mobile device.
 15. Themobile device of claim 10, wherein determining the current contextfurther includes determining at least one of a day of the week orcurrent time.
 16. The mobile device of claim 10, wherein determining thecurrent context further includes determining that a user-selectedcontext parameter indicates a travel status.
 17. The mobile device ofclaim 10, wherein the notification type is associated with auser-selected category of products or services.
 18. The mobile device ofclaim 10, wherein the geographic region is associated with a home orwork address of the user that is stored in contacts or an address bookon the mobile device.
 19. A non-transitory, computer-readable storagemedium having instructions stored therein, that when executed by one ormore processors, cause the one or more processors to perform operationscomprising: receiving a first input selecting a category from aplurality of category options, the category options defining differenttypes of points of interest; receiving a second input selecting one ormore subcategories from a plurality of subcategory options, thesubcategory options being different types of products or servicesassociated with the category selected by the first input; discovering aparticular point of interest from a map database that falls within thecategory selected by the first input; detecting that the mobile devicehas entered or exited a geofence surrounding a geographic regionincluding the particular point of interest; determining, by the one ormore sensors, a current context of the mobile device, the currentcontext being that a user of the mobile device is walking or drivingwith the mobile device and a direction of travel of the user;determining whether or not to present a notification on the mobiledevice based on the current context; responsive to determining topresent the notification on the mobile device, determining auser-selected notification type based on the subcategory selected by thesecond input; and presenting the notification of the user-selectednotification type on the mobile device.
 20. The non-transitory,computer-readable storage medium of claim 19, wherein the detectingincludes determining that a dwell time within the geofence has beenexceeded.